package com.yonyou.pmclouds.workstartreport.mapper;

import com.yonyou.pmclouds.basecom.dao.BaseMapper;
import com.yonyou.pmclouds.project.entity.ProjectVO;
import com.yonyou.pmclouds.workquality.entity.WorkqualityDetailVO;
import com.yonyou.pmclouds.workquality.entity.WorkqualityVO;
import com.yonyou.pmclouds.workstartreport.entity.WorkStartVO;
import org.apache.ibatis.annotations.Param;

public interface WorkStartMapper extends BaseMapper<WorkStartVO> {
    /**
     * 通过项目ID查询所有条件
     */
    WorkStartVO[] selectAllCondition(@Param("projectId") String projectId);
    /**
     * 查询开工报告总数量
     */
    Integer counts();
    /**
     * 通过报告ID查询开工报告
     */
    WorkStartVO selectReport(@Param("reportId")String reportId);

    /**
     * 条件主键查询条件信息
     */
    WorkqualityVO selectWorkquality(@Param("pkWorkquality") String pkWorkquality);
    /**
     * 查询条件总数
     */
    Integer selectWorkqualityCount(@Param("pkTenant")String pkTenant);
    /**
     * 根据检查项Id (pkWorkqualitydetail)获取检查项名字
     */
    String selectName(@Param("pkWorkqualitydetail") String pkWorkqualitydetail);
    /**
     * 根据检查项Id (pkWorkqualitydetail)获取检查项描述
     */
    String selectDescription(@Param("pkWorkqualitydetail") String pkWorkqualitydetail);
    /**
     * 根据检查项Id(pkWorkqualitydetail)获取检查项序号
     */
    String selectCode(@Param("pkWorkqualitydetail")String pkWorkqualitydetail);
    /**
     * 根据检查项Id数组(pkWorkqualitydetail)查询检查项对象信息
     */
    WorkqualityDetailVO[] selectCheckItem(@Param("ids") String[] ids);
    /**
     * 根据检查项Id (pkWorkqualitydetail)获取是否需要拍摄图片
     */
    String selectNeedPhoto(@Param("pkWorkqualitydetail") String pkWorkqualitydetail);
    /**
     * 根据项目ID获得项目名称以及编号
     */
    ProjectVO selectProject(@Param("projectId") String projectId);
    /**
     * 查询条件下的所有检查项
     */
    WorkqualityDetailVO[] selectQualityDetatil(@Param("conditionId")String conditionId);
    /**
     * 根据条件查询开工条件
     */
    WorkStartVO[] queryByCondition(@Param("pkProjects")String[] pkProjects,
                                         @Param("creators") String[] creators,
                                         @Param("startDate") String startDate,
                                         @Param("endDate") String endDate,
                                         @Param("billStatus") int[] billStatus,
                                         @Param("start") int start,
                                         @Param("size") int size);
    //根据条件查询数量
    int countByCondition(@Param("pkProjects")String[] pkProjects,
                         @Param("creators") String[] creators,
                         @Param("startDate") String startDate,
                         @Param("endDate") String endDate,
                         @Param("billStatus") int[] billStatus);
}
